package com.solarStruggle.domain.stats

import com.solarStruggle.domain.{Weapon => WeaponBase}

class Lasers1Stats
extends Weapon {
	def blastRadius = 0
	def energyDamage = 5
	def researchCost = 0
	def outsideRadius = 5
	def energy = 10
	def physicalDamage = 0
	def description = ""
	def insideRadius = 0
	def cost = 2000
	def name = "Lasers I"
	def mass = 1
}

object Lasers1 extends ShardFactory {
	override def apply() = new Lasers1Stats()

	override lazy val singleton = new Lasers1Stats()
}

class Lasers2Stats
extends Weapon {
	def blastRadius = 0
	def energyDamage = 5
	def researchCost = 5
	def outsideRadius = 5
	def energy = 9
	def physicalDamage = 0
	def description = ""
	def insideRadius = 0
	def cost = 2500
	def name = "Lasers II"
	def mass = 1
}

object Lasers2 extends ShardFactory {
	override def apply() = new Lasers2Stats()

	override lazy val singleton = new Lasers2Stats()
}

class Lasers3Stats
extends Weapon {
	def blastRadius = 0
	def energyDamage = 6
	def researchCost = 5
	def outsideRadius = 6
	def energy = 9
	def physicalDamage = 0
	def description = ""
	def insideRadius = 0
	def cost = 3000
	def name = "Lasers III"
	def mass = 1
}

object Lasers3 extends ShardFactory {
	override def apply() = new Lasers3Stats()

	override lazy val singleton = new Lasers3Stats()
}

class Torpedoes1Stats
extends Weapon {
	def blastRadius = 0
	def energyDamage = 0
	def researchCost = 10
	def outsideRadius = 6
	def energy = 8
	def physicalDamage = 5
	def description = ""
	def insideRadius = 2
	def cost = 4000
	def name = "Torpedoes I"
	def mass = 5
}

object Torpedoes1 extends ShardFactory {
	override def apply() = new Torpedoes1Stats()

	override lazy val singleton = new Torpedoes1Stats()
}

class Torpedoes2Stats
extends Weapon {
	def blastRadius = 0
	def energyDamage = 0
	def researchCost = 10
	def outsideRadius = 7
	def energy = 8
	def physicalDamage = 5
	def description = ""
	def insideRadius = 1
	def cost = 4500
	def name = "Torpedoes II"
	def mass = 5
}

object Torpedoes2 extends ShardFactory {
	override def apply() = new Torpedoes2Stats()

	override lazy val singleton = new Torpedoes2Stats()
}

class Torpedoes3Stats
extends Weapon {
	def blastRadius = 1
	def energyDamage = 0
	def researchCost = 10
	def outsideRadius = 8
	def energy = 7
	def physicalDamage = 6
	def description = ""
	def insideRadius = 0
	def cost = 5000
	def name = "Torpedoes III"
	def mass = 5
}

object Torpedoes3 extends ShardFactory {
	override def apply() = new Torpedoes3Stats()

	override lazy val singleton = new Torpedoes3Stats()
}

class Missiles1Stats
extends Weapon {
	def blastRadius = 0
	def energyDamage = 0
	def researchCost = 15
	def outsideRadius = 16
	def energy = 8
	def physicalDamage = 7
	def description = ""
	def insideRadius = 8
	def cost = 7000
	def name = "Missiles I"
	def mass = 6
}

object Missiles1 extends ShardFactory {
	override def apply() = new Missiles1Stats()

	override lazy val singleton = new Missiles1Stats()
}

class Missiles2Stats
extends Weapon {
	def blastRadius = 1
	def energyDamage = 0
	def researchCost = 15
	def outsideRadius = 17
	def energy = 8
	def physicalDamage = 7
	def description = ""
	def insideRadius = 8
	def cost = 7500
	def name = "Missiles II"
	def mass = 6
}

object Missiles2 extends ShardFactory {
	override def apply() = new Missiles2Stats()

	override lazy val singleton = new Missiles2Stats()
}

class Missiles3Stats
extends Weapon {
	def blastRadius = 2
	def energyDamage = 0
	def researchCost = 15
	def outsideRadius = 18
	def energy = 7
	def physicalDamage = 7
	def description = ""
	def insideRadius = 7
	def cost = 8000
	def name = "Missiles III"
	def mass = 6
}

object Missiles3 extends ShardFactory {
	override def apply() = new Missiles3Stats()

	override lazy val singleton = new Missiles3Stats()
}

class Nukes1Stats
extends Weapon {
	def blastRadius = 6
	def energyDamage = 8
	def researchCost = 20
	def outsideRadius = 20
	def energy = 10
	def physicalDamage = 8
	def description = ""
	def insideRadius = 10
	def cost = 10000
	def name = "Nukes I"
	def mass = 8
}

object Nukes1 extends ShardFactory {
	override def apply() = new Nukes1Stats()

	override lazy val singleton = new Nukes1Stats()
}

class Nukes2Stats
extends Weapon {
	def blastRadius = 6
	def energyDamage = 8
	def researchCost = 20
	def outsideRadius = 20
	def energy = 10
	def physicalDamage = 8
	def description = ""
	def insideRadius = 10
	def cost = 11000
	def name = "Nukes II"
	def mass = 8
}

object Nukes2 extends ShardFactory {
	override def apply() = new Nukes2Stats()

	override lazy val singleton = new Nukes2Stats()
}

class Nukes3Stats
extends Weapon {
	def blastRadius = 6
	def energyDamage = 8
	def researchCost = 20
	def outsideRadius = 25
	def energy = 10
	def physicalDamage = 8
	def description = ""
	def insideRadius = 10
	def cost = 12000
	def name = "Nukes III"
	def mass = 8
}

object Nukes3 extends ShardFactory {
	override def apply() = new Nukes3Stats()

	override lazy val singleton = new Nukes3Stats()
}

